//
//  DB.m
//  数据库
//
//  Created by 霍文轩 on 15/8/14.
//  Copyright (c) 2015年 霍文轩. All rights reserved.
//

// 用于打开关闭数据库
#import "DB.h"

static sqlite3 * dbPoint = nil; // 数据库指针

@implementation DB

// 将bundle中的数据拷贝到library中进行操作，在bundle中无法增删改
+(sqlite3 *)dbOpen{
    if (dbPoint) { // 如果指针存在，直接返回，避免无限创建数据库指针
        return dbPoint;
    }
    
    NSString * sourcePath = [[NSBundle mainBundle] pathForResource:@"Diary" ofType:@"rdb"];
    NSString * destination = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) firstObject];
    destination = [NSString stringWithFormat:@"%@/%@",destination,@"Diary.db"]; // 将要复制到的路径
    NSLog(@"path:%@",destination);
    
    NSFileManager * manager = [NSFileManager defaultManager];
    if(![manager fileExistsAtPath:destination]){
        [manager copyItemAtPath:sourcePath toPath:destination error:nil];
    }
    
    sqlite3_open([destination UTF8String], &dbPoint); // 打开数据库，参数分别为const char类型的路径（cStringUsingEncoding:NSUTF8StringEncoding 或者UTF8String都可以），数据库指针，要再内存中操作指针
    return dbPoint;
}
// 关闭数据库
+(void)dbClose{
    sqlite3_close(dbPoint);
}

@end